/*
算法3-13 后缀表达式求值
分数 25
作者 陈越
单位 浙江大学

请编写程序，求给定的后缀表达式的值。
输入格式：

输入在一行中给出一个非空后缀表达式，其中操作数为 int 型整数，操作符包括加、减、乘、除、取模。各项之间以空格分隔。表达式字符串（包括空格）长度小于 1000。题目保证正确计算的过程中不会产生溢出。
输出格式：

在一行中输出后缀表达式的值。注意全部计算都是整数运算，结果仅取整数。
以下情况需要输出错误信息：

    计算除法时发现分母为 0，输出 错误：除法操作分母为零。；
    计算取模时发现除数为 0，输出 错误：取模操作除数为零。；
    发现表达式错误时，输出 错误：表达式不规范。；
    无法正确计算出结果时，输出 10^9。

输入样例 1：

23 16 18 2 * 11 / 117 5 % + - +

输出样例 1：

34

输入样例 2：

23 0 %

输出样例 2：

错误：取模操作除数为零。
1000000000
*/

#include <iostream>
#include <stack>
#include <string>
#include <sstream>

using namespace std;

bool isOperator(const string &s) {
    return s == "+" || s == "-" || s == "*" || s == "/" || s == "%";
}

int main() {
    stack<int> s;
    string str;
    getline(cin, str);
    istringstream iss(str);
    string token;
    bool error = false;
    while (iss >> token) {
        if (isOperator(token)) {
            if (s.size() < 2) {
                error = true;
                cout << "错误：表达式不规范。" << endl;
                break;
            }
            int b = s.top();
            s.pop();
            int a = s.top();
            s.pop();
            if (token == "+") {
                s.push(a + b);
            } else if (token == "-") {
                s.push(a - b);
            } else if (token == "*") {
                s.push(a * b);
            } else if (token == "/") {
                if (b == 0) {
                    error = true;
                    cout << "错误：除法操作分母为零。" << endl;
                    break;
                }
                s.push(a / b);
            } else if (token == "%") {
                if (b == 0) {
                    error = true;
                    cout << "错误：取模操作除数为零。" << endl;
                    break;
                }
                s.push(a % b);
            }
        } else {
            s.push(stoi(token));
        }
    }
    // 操作数过多
    if (!error && s.size() != 1) {
        error = true;
        cout << "错误：表达式不规范。" << endl;
    }
    if (error || s.size() != 1) {
        cout << 1000000000 << endl;
    } else {
        cout << s.top() << endl;
    }
    return 0;
}